package com.wzl.day17;

public class Day17 {
//将一个给定字符串根据给定的行数，以从上往下、从左到右进行 Z 字形排列。
//
// 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时，排列如下：
//
// L   C   I   R
//E T O E S I I G
//E   D   H   N
//
//
// 之后，你的输出需要从左往右逐行读取，产生出一个新的字符串，比如："LCIRETOESIIGEDHN"。
//
// 请你实现这个将字符串进行指定行数变换的函数：
//
// string convert(string s, int numRows);
//
// 示例 1:
//
// 输入: s = "LEETCODEISHIRING", numRows = 3
//输出: "LCIRETOESIIGEDHN"
//
//
// 示例 2:
//
// 输入: s = "LEETCODEISHIRING", numRows = 4
//输出: "LDREOEIIECIHNTSG"
//解释:
//
//L     D     R
//E   O E   I I
//E C   I H   N
//T     S     G
// Related Topics 字符串


    //leetcode submit region begin(Prohibit modification and deletion)

    public String convert(String s, int numRows) {
        char[] c = new char[s.length()];
        int size = numRows * 2 - 2; //绝对步长
        int index; //记算s下标
        int count = 0; //记录c下标
        int add; //相对步长
        if (numRows < 2) {
            return s;
        }
        for (int i = 0; i < numRows; i++) { //一层一层遍历
            index = i;
            add = i * 2;
            while (index < c.length) { //超出字符串长度计算下一层
                c[count] = s.charAt(index);
                add = size - add;
                index += add == 0 ? size : add;
                count++;
            }
        }
        return new String(c);

    }

    public static void main(String[] args) {
       int i = Integer.MAX_VALUE;
       int j = 0;
       j = i+1;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

